package cvo.chess.client.entities;

import cvo.chess.client.entities.chessboard.IChessboardCoordinate;
import cvo.chess.client.entities.chessboard.ITile;
import cvo.chess.client.entities.game.IChessboard;
import cvo.chess.client.entities.game.IPiece;

public interface IGameFacade {

	public abstract Game newGame();

	public abstract IChessboard getBoard();

	public abstract void startGame() throws Exception;

	public abstract IPiece getPieceAt(IChessboardCoordinate boardCoordinate);

	public abstract void setPieceAtPosition(IPiece piece,
			IChessboardCoordinate iChessboardCoordinate) throws Exception;
	
	public abstract void setPieceAtPosition(IPiece piece,
			String A1notation) throws Exception;

	public abstract ITile getTileAt(String a1notation);

	public abstract IPiece getPieceAt(String a1notation);
	
	public IChessboardCoordinate getPositionOfPiece(IPiece piece) throws Exception;
	
	public abstract void doMove(String from, String to) throws Exception;

}